/**
 * Clase PantallaListadoMedicamentos: define la pantalla donde se mostraran los resultados de la
 * busqueda realizada en el formulario PantallaBusquedaPacientes
 */

package infbmobile.pantallas;

// Importaciones externas
import com.sun.lwuit.*;
import com.sun.lwuit.animations.CommonTransitions;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.layouts.*;
import com.sun.lwuit.events.ActionListener;
import java.util.*;


// Importaciones  internas
import infbmobile.main.*;
import infbmobile.util.UIHerramientas;


public class PantallaHistorial extends Form implements ActionListener {
    // Referencia al midlet principal
    public PantallaInformacionPaciente midlet;

    // Atributos de clase
    // El listado con los resultados indexados de los medicamentos encontrados pasado como parametro
    // por la clase "madre" PantallaBusquedaMedicamentos
    private Hashtable listado;
    // Un hash donde asociaremos un medicamento(String[]) a un determinado boton
    private Hashtable hashBotonesMedicamentos;
    private Command comandoVolver;
    private TextField fechaTrat,fechaFin;
    private TextArea sintomas,diagnostico,tratamiento;

    /*
     * Constructor principal de la clase
     */
    public PantallaHistorial(PantallaInformacionPaciente midlet,Hashtable listado) {
        super("Historial - HospiGest Medico");
        this.midlet=midlet;
        this.listado=listado;
        // Fijamos el layout del formulario
        setLayout(new BoxLayout(BoxLayout.Y_AXIS));
        Label labPacientes = new Label("Historial: ");
        labPacientes.getStyle().setMargin(Component.BOTTOM, 0);
        addComponent(labPacientes);
        // Creamos el hash de botones:: esto es el "truco"
        Enumeration e=listado.elements();
        // En este punto tenemos una "enumeracion" con todos los arrays de strings que representan
        // los datos de un paciente (recordemos que aqui no tenemos la clase paciente, es por
        // ello por lo que se ha decidio almacenar los datos devueltos por el servidor en un array
        // de Strings)
        hashBotonesMedicamentos=new Hashtable();
        Label separacion;
        while(e.hasMoreElements()){


            String[] paciente=(String[])e.nextElement();
            /*
                    0 sintomas
                    1 diagnostico
                    2 tratamiento
                    3 fechaTrat
                    4 fechaFin
            */
            sintomas        = new TextArea(paciente[0],3,3);
            diagnostico     = new TextArea(paciente[1],3,3);
            tratamiento     = new TextArea(paciente[2],3,3);
            fechaTrat       = new TextField(LEFT);
            fechaFin        = new TextField(LEFT);

            fechaTrat.setText(paciente[3]);     fechaTrat.setEditable(false);
            fechaFin.setText(paciente[4]);      fechaFin.setEditable(false);

            addComponent(UIHerramientas.crearParejaFija("FECHA CITA: ",fechaTrat,70));
            addComponent(UIHerramientas.crearParejaFija("sintomas: ",sintomas,70));
            addComponent(UIHerramientas.crearParejaFija("diagnostico: ",diagnostico,70));
            addComponent(UIHerramientas.crearParejaFija("tratamiento: ",tratamiento,70));
            addComponent(UIHerramientas.crearParejaFija("fecha de fin: ",fechaFin,70));
            separacion = new Label("--------------------");
            separacion.getStyle().setMargin(Component.BOTTOM, 0);
            addComponent(separacion);
        }
        // Configuramos los comandos
        comandoVolver=new Command("Volver");
        addCommand(comandoVolver);
        setCommandListener(this);
        // Fijamos la transicion de aparicion/desaparicion para una mejor apariencia
        setTransitionInAnimator(CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL,false,500));
        setTransitionOutAnimator(CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL,true,500));
    }

    public void actionPerformed(ActionEvent evento) {
        Object fuente=evento.getSource();

        // Recogemos de donde vino el evento
        if(fuente==comandoVolver){
            System.gc();
            midlet.show();
        }
    }

}
